#define _CRT_SECURE_NO_WARNINGS 1
//#include <iostream>
//#include <cstring>
//using namespace std;
//int a[100010] = { 0 };
//int b[100010] = { 0 };
//int main()
//{
//	int n = 0;
//	cin >> n;
//	while (n)
//	{
//		int l, r;
//		for (int i = 0; i < n; i++)
//		{
//			cin >> l >> r;
//			a[l]++;
//			a[r+1]--;
//		}
//		for (int i = 1; i <= n; i++)
//		{
//			b[i] = b[i - 1] + a[i];
//		}
//		for (int i = 1; i < n; i++)
//		{
//			cout << b[i] << ' ';
//		}
//		cout << b[n] << endl;
//		memset(a, 0, sizeof(a));
//		cin >> n;
//	}
//	return 0;
//}
//#include <iostream>
//#include <algorithm>
//using namespace std;
//long long a[1000010];
//long long num[1000010];
//long long sa[1000010];
//struct sk 
//{
//	long long k;
//	long long c;
//	long long n1;
//}arrk[1000010];
//
//bool cmp(struct sk a, struct sk b)
//{
//	return a.k < b.k;
//}
//bool cmp1(struct sk a, struct sk b)
//{
//	return a.c < b.c;
//}
//int main()
//{
//	int n, q;
//	cin >> n >> q;
//	for (int i = 1; i <= n; i++)
//	{
//		scanf("%lld %lld", &a[i], &num[i]);
//	}
//	for (int i = 1; i <= n; i++)
//	{
//		sa[i] = sa[i - 1] + a[i];
//	}
//	for (int i = 1; i <= q; i++)
//	{
//		scanf("%lld", &arrk[i].k);
//		arrk[i].c = i;
//	}
//	sort(arrk+1, arrk + q + 1, cmp);
//	for (int i = 1,j=1; i <= n; i++)
//	{
//		while (sa[i] >= arrk[j].k)
//		{
//			arrk[j].n1 = num[i];
//			j++;
//			if (j > q)
//			{
//				break;
//			}
//		}
//		
//	}
//	sort(arrk+1, arrk + q + 1, cmp1);
//	for (int i = 1; i <= q; i++)
//	{
//		printf("%lld\n", arrk[i].n1);
//	}
//	return 0;
//
//}

//#include <iostream>
//using namespace std;
//long long sum[1000010];
//int check(int n)
//{
//	if (n % 7 == 0)
//	{
//		return 1;
//	}
//	while (n > 0)
//	{
//		if (n % 10 == 7)
//		{
//			return 1;
//		}
//		n /= 10;
//	}
//	return 0;
//}
//int main()
//{
//	int t;
//	cin >> t;
//	for (long long i = 1; i <= 1000000; i++)
//	{
//		if (check(i))
//		{
//			sum[i] = sum[i - 1];
//		}
//		else
//		{
//			sum[i] = sum[i - 1] + i * i;
//		}
//	}
//	int n = 0;
//	while (t--)
//	{
//		cin >> n;
//		cout << sum[n] << endl;
//	}
//	return 0;
//}

//#include <iostream>
//#include <cstdio>
//using namespace std;
//long long a[100010];
//long long b[100010];
//int main()
//{
//	long long sum = 0;
//	int n = 0;
//	long long pos = 0;
//	long long neg = 0;
//	cin >> n;
//	for (int i = 1; i <= n; i++)
//	{
//		scanf("%lld", &a[i]);
//	}
//	for (int i = 1; i <= n; i++)
//	{
//		b[i] = a[i] - a[i - 1];
//	}
//	for (int i = 2; i <= n; i++)
//	{
//		if (b[i] != 0)
//		{
//			sum += b[i];
//			if (b[i] > 0)
//			{
//				pos += b[i];
//			}
//			else
//			{
//
//				neg -= b[i];
//			}
//			b[i] = 0;
//			
//		}
//	}
//	if (sum < 0)
//	{
//		sum = -sum;
//	}
//	cout << max(neg,pos)<<endl;
//	cout << sum + 1;
//
//	return 0;
//}

#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;

int main()
{
	int n, m;
	while (scanf("%d %d", &n, &m)!=EOF)
	{

		long long** d;
		long long** s;
		long long** c;
		d = (long long**)malloc(sizeof(long long*) * (n + 5));
		s = (long long**)malloc(sizeof(long long*) * (n + 5));
		c = (long long**)malloc(sizeof(long long*) * (n + 5));
		for (int i = 0; i <= n + 1; i++)
		{
			d[i] = (long long*)malloc(sizeof(long long) * (m + 5));
			s[i] = (long long*)malloc(sizeof(long long) * (m + 5));
			c[i] = (long long*)malloc(sizeof(long long) * (m + 5));

		}
		for (int i = 0; i <= n + 1; i++)
		{
			for (int j = 0; j <= m + 1; j++)
			{
				d[i][j] = 0;
				s[i][j] = 0;
				c[i][j] = 0;
			}

		}
		int p, q;
		scanf("%d", &p);
		int x1, x2, y1, y2;
		while (p--)
		{
			scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
			d[x1][y1] += 1;
			d[x2 + 1][y1] -= 1;
			d[x1][y2 + 1] -= 1;
			d[x2 + 1][y2 + 1] += 1;
		}
		for (int i = 1; i <= n; i++)
		{
			for (int j = 1; j <= m; j++)
			{
				s[i][j] = d[i][j] + s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1];

			}
		}
		for (int i = 1; i <= n; i++)
		{
			for (int j = 1; j <= m; j++)
			{
				if (s[i][j] > 1)
				{
					s[i][j] = 1;
				}

			}
		}
		for (int i = 1; i <= n; i++)
		{
			for (int j = 1; j <= m; j++)
			{
				c[i][j] = c[i - 1][j] + c[i][j - 1] + s[i][j] - c[i - 1][j - 1];
			}
		}
		scanf("%d", &q);

		while (q--)
		{
			scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
			if (c[x2][y2] - c[x2][y1 - 1] - c[x1 - 1][y2] + c[x1 - 1][y1 - 1] >= (abs(x1 - x2) + 1) * (abs(y1 - y2) + 1))
			{
				cout << "YES";
			}
			else
			{
				cout << "NO";
			}
			
				cout << endl;
		
		}
		for (int i = 0; i <= n+1; i++)
		{
			delete[]d[i];
			delete[]s[i];
			delete[]c[i];

		}
	}
	return 0;
}